#include "atomic_0813_log_management_service.h"


int handleLog(LogManagerInput *logInput, LogManagerOutput *logOutput) {
    // 检查输入输出指针有效性
    if (logInput == nullptr || logOutput == nullptr) {
        return ATOMIC_SERVICE_ERROR;
    }

    // 模拟生成唯一日志ID（静态变量自增）
    static int s_logIdCounter = 1000;
    logOutput->log_id = s_logIdCounter++;

    // 模拟生成当前时间戳
    auto now = std::chrono::system_clock::now();
    std::time_t nowTime = std::chrono::system_clock::to_time_t(now);
    logOutput->timestamp = std::ctime(&nowTime);
    // 移除ctime自带的换行符
    if (!logOutput->timestamp.empty() && logOutput->timestamp.back() == '\n') {
        logOutput->timestamp.pop_back();
    }

    // 模拟处理结果（简单判断日志级别，INFO及以下视为成功处理）
    if (logInput->log_level <= 1) { // DEBUG(0)和INFO(1)级别
        logOutput->handle_result = 0; // 处理成功
    } else { // WARN(2)和ERROR(3)级别
        logOutput->handle_result = 1; // 模拟处理警告/错误
    }

    // 设置返回类型为成功
    logOutput->return_type = ATOMIC_SERVICE_SUCCESS;
    logOutput->content = logInput->content;

    return ATOMIC_SERVICE_SUCCESS;
}